﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SimCityPak.Views.AdvancedEditors
{
    public class PropertyConstants
    {
        public const uint scLightIDs = 0x0caa8f10;
        public const uint scLightTypes = 0x0caa8f11;
        public const uint scLightTransforms = 0x0caa8f12;
        public const uint scLightColors = 0x0caa8f13;
        public const uint scLightRadii = 0x0caa8f14;
        public const uint scLightInnerRadii = 0x0caa8f15;
        public const uint scLightDiffuseLevels = 0x0caa8f16;
        public const uint scLightDebugNames = 0x0caa8f17;
        public const uint scLightSpecLevels = 0x0d4c96b4;
        public const uint scLightLength = 0x0d4cad23;
        public const uint scLightCullDistance = 0x0e01200f;
        public const uint scLightFalloffStart = 0x0e4df244;
        public const uint scLightIsVolumetric = 0x0e98d445;
        public const uint scLightVolStrength = 0x0ec4567e;

        //effects

        public const uint effectID = 0x02a907b5;
        public const uint effectTransform = 0x02a907b6;
        public const uint effectAlwaysZero = 0x02a907b9;
        public const uint effectEffectID = 0x02a907bb;
        public const uint effectEnabled = 0x02a907bc;

        //other stuff

        public const uint UnitLOD1 = 0x00f9efbb;
        public const uint UnitLOD2 = 0x00f9efbc;
        public const uint UnitLOD3 = 0x00f9efbd;
        public const uint UnitLOD4 = 0x00f9efbe;
        public const uint ModelSize = 0x00fba611;

        public const uint UnitLotOverlayBoxSize = 0x0CCB7FC8;
  
        public const uint LotSize = 0x0ccb7fc8;
        public const uint LotMask = 0x0ccb7fd5;
        public const uint LotUnitOffset = 0x0CCB7FC9;
        public const uint LotPlacementTransform = 0x0DB7FB17;

        public const uint LotColor1 = 0x0d02d586;
        public const uint LotColor2 = 0x0d02d587;
        public const uint LotColor3 = 0x0d02d588;
        public const uint LotColor4 = 0x0d02d589;

        public const uint LotBorderColor1 = 0x0D7AF042;
        public const uint LotBorderColor2 = 0x0D7AF043;
        public const uint LotBorderColor3 = 0x0D7AF044;
        public const uint LotBorderColor4 = 0x0D7AF045;

        //unit path points
        public const uint UnitPathPoint = 0x0CAA680D;
        public const uint UnitPathPointIndex = 0x0CAA6832;
        public const uint UnitPathPointTangent = 0x0CB00ED8;

        public const uint scUnitPaths = 0x0CAA6841;

        public const uint scUnitPathEntries = 0x0CC8FE7A;
        public const uint scUnitPathScope = 0x0D9A4E54;
        public const uint scUnitPathRoadConnect = 0x0D9AA2BB;

        //constants for decal dictionary

        public const uint Parent = 0x00B2CCCB;

        public const uint DecalDictionaryGroup = 0xc67fb185;
        public const uint DecalDictionaryMaterial = 0x0ce5ef4e; //key
        public const uint DecalDictionaryTextureSize = 0x0ce5ef4f; //vector2 # number of tiles, or smallest texture size allowed in autogenerated atlas
        public const uint DecalDictionaryDecalID = 0x0ce5ef50; //key
        public const uint DecalDictionaryDecalRatio = 0x0ce5ef53; //float
        public const uint DecalDictionaryDecalImage = 0x0ce5ef58; //key
        public const uint DecalDictionaryDecalColor1 = 0x0ce5ef5c; //vector4
        public const uint DecalDictionaryDecalColor2 = 0x0ce5ef5d; //vector4
        public const uint DecalDictionaryDecalColor3 = 0x0ce5ef5e; //vector4
        public const uint DecalDictionaryDecalColor4 = 0x0ce5ef5f; //vector4
        public const uint DecalDictionaryAtlasSize = 0x0ce5ef60; //vector2 # size of autogenerated atlas

        public const uint RasterImageType = 0x2f4e681c;
        public const uint RW4ImageType = 0x2f4e681b;

        //constants for paths

        //path elements
        public const uint proceduralMeshMaterialId = 0x09558821; //key

        //for each path element
        public const uint proceduralMeshModelKeys = 0x09558827; //key
        public const uint proceduralMeshSweepOffsets = 0x09558828; //float
        public const uint proceduralMeshSweepIntervals = 0x09558829; //float
        public const uint proceduralMeshSweepLengths = 0x0955882A; //float
        public const uint proceduralMeshSweepStepIntervals = 0x0955882B; //float
        public const uint proceduralMeshOffsets = 0x0955882C; //(vector3)
        public const uint proceduralMeshDistorts = 0x0955882D; //(bool)
        public const uint proceduralMeshRepeatUVs = 0x0955882E; //(bool)
        public const uint proceduralMeshComponentTags1 = 0x0A49AEA4; //key
        public const uint proceduralMeshComponentTags2 = 0x0A49B270; //key
        public const uint proceduralMeshComponentTags3 = 0x0A49B275; //key
        public const uint proceduralMeshRoundSweepIntervals = 0x0E1FD74D; //bool
        public const uint proceduralMeshSweepEndOffsets = 0x0E604A97; //float
        public const uint proceduralMeshScales = 0x79F50F26; //vector3
        public const uint proceduralMeshRotations = 0x96906170; //vector3
        public const uint proceduralMeshComponentIds = 0xBCC53802; //key

        //menu items properties

        public const uint menuIcon = 0x0977AA8F; //key
        public const uint menuMarqueeImage = 0x0DDEEE56; //key
        public const uint menuUnit = 0x0975695F; //key

        //Ecogame Unit Properties

        public const uint ecoGameUnitDisplayModel = 0x08E17ED7;
    }
}
